package tag34_27_08.aufgabeAutos.dozent;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.TreeSet;

public class Aufgabe {

	public static void main(String[] args) {
		
		System.out.println(" +++ Aufgabe(n) 2, 3 +++ ");
		
		VW vw1 = new VW("Golf", 1990);
		VW vw2 = new VW("Polo", 2003);
		VW vw3 = new VW("Golf", 2005);
		
		
		System.out.println(vw1);

		System.out.println(" +++ Aufgabe(n) 4, 5 +++ ");
		
		LinkedList<VW> listVW = new LinkedList<VW>();
		listVW.add(vw1);
		listVW.add(vw2);
		listVW.add(vw3);
		
		print(listVW);
		
		HashSet<VW> hasSetVW = new HashSet<VW>(listVW);
//		hasSetVW.add(vw3);
//		hasSetVW.add( new VW("Golf", 2005) );
		print(hasSetVW);
		
		TreeSet<VW> treeSetVW = new TreeSet<VW>(listVW);
//		treeSetVW.add( new VW("Golf", 2005) );
		print(treeSetVW);
		
		PriorityQueue<VW> queueVW = new PriorityQueue<VW>(listVW);
		print(queueVW);
		
		System.out.println("--- PQueue leeren: ---");
		while( !queueVW.isEmpty() ) {
			System.out.println(queueVW.poll());
		}
		
		System.out.println(" +++ Aufgabe(n) 2, 6 +++ ");
		
		BMW bmw1 = new BMW("Z4", 2000);
		BMW bmw2 = new BMW("M5", 1991);
		BMW bmw3 = new BMW("X1", 2010);
		
		ArrayList<BMW> listBMW = new ArrayList<BMW>();
		listBMW.add(bmw1);
		listBMW.add(bmw2);
		listBMW.add(bmw3);
		
		print(listBMW); //Collection<VW> coll = ArrayList<BMW>
		
		HashSet<BMW> hashSetBMW = new HashSet<BMW>(listBMW);
//		hashSetBMW.add(new BMW("X1", 2010));
		print(hashSetBMW);
		
		TreeSet<BMW> treeSetBMW = new TreeSet<BMW>(listBMW);
		print(treeSetBMW);
		
	} //end of main
	
	static void print(Collection<? extends Auto> coll) {
		System.out.println("--------------------------------------------");
		System.out.println("------- " + coll.getClass() + " --------");
		
		for(Auto auto : coll) {
			System.out.println(auto);
		}
	}
}
